import router from '@/router'
import { useLoginUserStore } from '@/stores/useLoginUserStore'
import ACCESS_ENUM from './accessEnum'
import checkAccess from './checkAccess'


/**
 * 路由拦截：

若用户未登录且目标路由需要权限 → 重定向到登录页。

若用户已登录但权限不足 → 重定向到无权限页。

其他情况 → 放行路由。
 */


router.beforeEach(async (to, from, next) => {

//   // // 如果之前没登陆过，自动登录
// if (!loginUser || !loginUser.userRole) {
//   // 加 await 是为了等用户登录成功之后，再执行后续的代码
//   await loginUserStore.fetchLoginUser();
//   loginUser = loginUserStore.loginUser;
// }
const loginUserStore=useLoginUserStore()
let loginUser=loginUserStore.loginUser
const needAccess=(to.meta?.access as string) ?? ACCESS_ENUM.NOT_LOGIN// 2. 获取目标路由需要的权限等级（默认为未登录）
// 3 如果目标路由需要权限（非 NOT_LOGIN）
if(needAccess!==ACCESS_ENUM.NOT_LOGIN){
  // 检查用户是否登录
  if(!loginUser || !loginUser.userRole || loginUser.userRole===ACCESS_ENUM.NOT_LOGIN){
    next(`/user/login?redirect=${to.fullPath}`)
    return
  }
  // 如果登录了，但是权限不对应
  if(!checkAccess(loginUser,needAccess))
  // 跳转到无权限页面
  next('/noAuth')
  return
}
next()
}
)
